﻿#ifndef PST_THREEDCLOUDMAPMARKERSETTINGDIALOG_H
#define PST_THREEDCLOUDMAPMARKERSETTINGDIALOG_H

#include <IdaDialogFrame>
QT_BEGIN_NAMESPACE
namespace Ui { class ThreeDCloudMapMarkerSettingDialog; };
QT_END_NAMESPACE

namespace pst
{
    class Marker3DDataInfo;

    class ThreeDCloudMapMarkerSettingDialog : public IdaDialogFrame
    {
        Q_OBJECT

    public:
        ThreeDCloudMapMarkerSettingDialog(QWidget* parent = nullptr);
        ~ThreeDCloudMapMarkerSettingDialog();

        void updateMarker3DDataInfo(Marker3DDataInfo* marker3DDataInfo);
        void setCurrentMarkerIndex(int index);
        void setExistMarkerMap(QHash<int, QString> map);

    signals:
        void signal_marker3DDataInfoChanged(Marker3DDataInfo* marker3DDataInfo);

    private:
        void updateUsingDataFromUI();

    private slots:
        void on_pushButton_cancel_clicked();
        void on_pushButton_apply_clicked();
        void on_pushButton_confirm_clicked();

    private:
        Ui::ThreeDCloudMapMarkerSettingDialog* ui;
        Marker3DDataInfo* m_marker3DDataInfo = nullptr;
        bool m_execSuccessFlag;
        int m_currentMarkerIndex;
        QHash<int, QString> m_existMarkerMap;
    };
}

#endif
